約 3,963,032 件
https://w.atwiki.jp/nicocachenlwiki/pages/37.html
.javaファイルの実体は普通のテキストファイルと同じです。Java言語で書かれたプログラミングコードの羅列となっています。(Java ソースファイル ) コンパイル することで JVM (Java Virtual Machine、Java仮想マシン)上で実行可能な .classファイル ( Javaバイトコード ファイル)になります。 .jarファイルは多くの場合、複数のclassファイルと画像ファイル、テキストファイル、メタデータをZIP圧縮したアーカイブです。 JVMが バイトコード を ネイティブコード(機械語) に変換することで初めてコンピュータ上で実行可能になります。 コンピュータが直接解釈可能なのは機械語のみです。 JVMがWindows、Linux、SolarisといったOS間の差異を直接吸収します。 一つのJavaソースで多くの実行環境で動作させることが出来、環境ごとにプログラムを書き直す手間がありません。 JDKはJava Development Kitの略で、.javaファイルをコンパイルするツールを含んでいます。JREはJava Runtime Environmentの略で、Javaを実行させる為だけのキットです。 JDKはJREを内包しており、JDKをインストールすれば、JREと同等以上の効果を得られます。 NicoCache_nlではコンパイル前のJavaソースファイルが配布されるという性質上JDKが必要になります。 名前 コメント
https://w.atwiki.jp/freebsd/pages/185.html
java/jdk15 java/diablo-jdk15 java/jdk16 java/diablo-jdk16
https://w.atwiki.jp/syusei/pages/4.html
Java Java Technology Java API Reference Bug Database Sun Developer Connection dev.java.net Java Community Process JCP 日本語 JavaOne Online Java Tutorial Java Blue Print Catalog Swing Labs Swing Sample Glassfish Java Tips JavaSE5.0の新機能 J2SE5.0虎の穴 Java SE 6 Mustang新機能 Nishigaya's Weblog Java-Source.net てんぷらメモ JavaSE6でのパフォーマンスの監視と診断 JMonkeyEngine
https://w.atwiki.jp/kerikerikeri/pages/26.html
Javaの部屋 ■java.new.URLクラス リモートファイルもローカルファイルも同一のアクセスが可能。 ▽HTTPリソースの場合(http //www26.atwiki.jp/kerikerikeri/pages/26.html) URL url = new URL("http //www26.atwiki.jp/kerikerikeri/pages/26.html"); ▽ファイルリソースの場合(file //c /Documents and Settings/guest/readme.txt) URL url2 = new URL("file //c /Documents and Settings/guest/readme.txt"); サンプルソース import java.io.*; import java.net.*; class TestUrl{ public static void main(String args){ BufferedReader reader = null; try{ URL url = new URL("http //www26.atwiki.jp/kerikerikeri/pages/26.html"); reader = new BufferedReader(new InputStreamReader(url.openStream(),"UTF-8")); while((line=reader.readLine()) != null){ System.out.println(line); } }catch(Exception e){ } } ■DataHandlerクラス SOAP Attachmentで使うDataHandlerクラスを使ってみる。 実装サンプル import javax.activation.*; import java.io.*; FileDataSource fds = new FileDataSource(new File("パス","ファイル名")); /** DataHandler生成 */ DataHandler dh = new DataHandler(fds); /** byte[]に格納 */ ByteArrayOutputStream baos = new ByteArrayOutputStream(); dh.getOutputStream(baos); byte[] b = baos.toByteArray(); ■ミリ秒を表示する java.util.Dateクラス java.text.DateFormatクラス java.text.SimpleDateFormatクラス Date date = new Date(); DateFormat dateformat = new SimpleDateFormat("yyyyMMdd HH mm ss.SSS"); dateformat.format(date); 実行結果 20070217 01 55 24.499
https://w.atwiki.jp/oit-archive/pages/31.html
work81.java import java.awt.*;import java.applet.*; public class work81 extends Applet { public void paint(Graphics g) {Color c1, c2, c3, c4; // c1 を生成c1 = new Color(64, 128, 160); g.setColor(c1);g.fillRect(20, 20, 70, 70); // c2 を生成c2 = new Color(0Xc1fe80);g.setColor(c2);g.fillRect(90, 20, 70, 70); // c3 を生成float red, green, blue;red = (float)(Math.random());green = (float)(Math.random());blue = (float)(Math.random());c3 = new Color(red, green, blue); g.setColor(c3);g.fillRect(160, 20, 70, 70); // c4 を生成c4 = new Color(120, 220, 250, 128);g.setColor(c4);g.fillRect(20, 60, 210, 70); }} work82.java class work82 { public static void main(String[] args) {Student82 p1 = new Student82(800999, "若馬 大輔");Student82 p2 = new Student82(900999, "入門 若葉", 61); p1.addCredits(45);p1.show();System.out.println("-------------------------");p2.show(); System.out.println("========================="); p1.addCredits(34);p1.show();System.out.println("-------------------------");p2.addCredits(-10);p2.show(); }} Student82.java class Student82 { static private final int minimumCredits = 124; // 卒業必要単位数 private int id; // 学生番号 private String name; // 名前 private int credits = 0; // 単位数 Student82(int i, String n){setData(i, n); } Student82(int i, String n, int c){setData(i, n);credits=c; } void show() {System.out.println("学生番号 " + id);System.out.println("名前 " + name);System.out.println("単位数 " + getCredits());System.out.println("必要単位 " + creditsRemainder()); } int getCredits() {return credits; } void setData(int i, String n) { id = i;name = n; } void addCredits(int n) {if (n 0) { credits = credits + n;} } int creditsRemainder() {int rem = minimumCredits - credits;if (rem 0) { rem = 0;}return rem; } } work83.java class work83 { public static void main(String[] args) {Dimension83 p1 = new Dimension83(10, 20);Dimension83 p2 = new Dimension83(30);Dimension83 p3 = new Dimension83(123, 45);/*p1.setSize(10, 20);p1.show(); p2.setSize(30, 30);p2.show(); p3.setSize(123, 45);p3.show();*/ p1.show();p2.show();p3.show(); System.out.println("2 番目の正方形のサイズを変更後表示"); p2.setSize(50, 20);p1.show();p2.show();p3.show(); }} Dimension83.java class Dimension83 { private int w; private int h; Dimension83(int w0, int h0){setSize(w0, h0); } Dimension83(int w0){setSize(w0, w0); } void setSize(int w0, int h0){w = w0;h = h0; } /* System.out.println("正方形領域(" + w + " X " + h + ") 面積 = " + w * h); */ void show(){if(w == h){ System.out.print("正方形領域(");}else { System.out.print("長方形領域(");}System.out.println(w + " X " + h + ") 面積 = "+ w * h); }} work84.java import java.awt.*;import java.applet.*; public class work84 extends Applet{ public void paint(Graphics g) {PacMan84 p1 = new PacMan84(40, 45);PacMan84 p2 = new PacMan84(120, 25, 100);/*p1.setData(40, 45, 60);p1.draw(g);p2.setData(120, 25, 100);p2.draw(g);*/ p1.draw(g);p2.draw(g); }} PacMan84.java import java.awt.*;import java.applet.*; public class work84 extends Applet{ public void paint(Graphics g) {PacMan84 p1 = new PacMan84(40, 45);PacMan84 p2 = new PacMan84(120, 25, 100);/*p1.setData(40, 45, 60);p1.draw(g);p2.setData(120, 25, 100);p2.draw(g);*/ p1.draw(g);p2.draw(g); }} work85.java import java.awt.*;import java.applet.*; public class work85 extends Applet{ public void paint(Graphics g){PacMan85 p1=new PacMan85(10,80);for(int i=0;i 4;i++){ p1.draw(g); p1.move(120,-20); p1.enLarge();} PacMan85 p2=new PacMan85(20,20,20);for(int i=0;i 4;i++){p2.draw(g);p2.move(25);p2.enLarge(1.2);} }} PacMan85.java import java.awt.*; class PacMan85 { private int x; private int y; private int size; PacMan85(int x0,int y0,int s0){setData(x0,y0,s0); } PacMan85(int x0,int y0){setData(x0,y0,60); } void setData(int x0,int y0,int s0){x=x0;y=y0;size=s0; } void move(int dx,int dy){x=x+dx;y=y+dy; } void move(int d){move(d,d); } void enLarge(double mag){size=(int)(size*mag); } void enLarge(){size=(int)(size*1.1); } void draw(Graphics g){g.setColor(Color.pink);g.fillArc(x, y, size, size, 45, 300);g.setColor(Color.black);g.fillOval(x + size / 2, y + size / 12, size / 6, size / 6); }} work86.java class work86 { public static void main(String[] args) {Hurrah86 p1= new Hurrah86("井上","がんば!",4);Hurrah86 p2= new Hurrah86("斉藤","読め!",3);Hurrah86 p3= new Hurrah86("水谷","もうすこし",2);Hurrah86 p4= new Hurrah86("小西","ファイト!一発",2);p1.shout();p2.shout();p3.shout();p4.shout();p1.shout();p2.shout("もう諦めるのか?");p3.shout();p2.shout();p1.shout("がんばれ???");p1.shout();p3.shout("寝るな!");p3.shout();p4.shout("まだ 8 回目だぞ!");p4.shout(); }} Hurrah86.java class Hurrah86 { private String name; private String msg; Hurrah86(String n0, String m0, int c0) {name = n0;msg = "";for (int i = 0; i c0; i++) { msg = msg + m0 + " ";} } void shout() {shout(msg); } void shout(String word) {System.out.println(name + ":" + word); }} work87.java // BigInteger と BigDecimal クラスを使うために import するimport java.math.*; // 教科書 184?185 ページの「パッケージを使う」を読もうimport java.math.BigDecimal;import java.math.BigInteger; class work87 { public static void main(String[] args) {if (args.length == 4) { System.out.println("\n" + args[0] + " と"); System.out.println(args[1] + " の和差積商"); BigInteger p1 =new BigInteger(args[0]); BigInteger p2 =new BigInteger(args[1]); System.out.println("和 = "+ p1.add(p2) ); System.out.println("差 = "+ p1.subtract(p2) ); System.out.println("積 = "+ p1.multiply(p2) ); System.out.println("商 = "+ p1.divide(p2) ); BigDecimal p3 = new BigDecimal(args[2]); BigDecimal p4 = new BigDecimal(args[3]); System.out.println("\n" + args[2] + " と"); System.out.println(args[3] + " の和差"); System.out.println("和 = "+ p3.add(p4) ); System.out.println("差 = "+ p3.subtract(p4) ); System.out.println("\n" + args[2] + " と"); System.out.println(args[3] + " の和差を double で計算すると,"); Double d2 = Double.parseDouble(args[2]); Double d3 = Double.parseDouble(args[3]); System.out.println("和 = " + (d2 + d3)); System.out.println("差 = " + (d2 - d3)); System.out.println("\n" + args[0] + " と"); System.out.println(args[1] + " と"); System.out.println(args[3] + " の和"); BigDecimal p5 = new BigDecimal(p1.add(p2)); System.out.println("和 = " + p5.add(p4)); } else { System.out.println("引数を 4 個指定してください。" );} }}
https://w.atwiki.jp/ipu-softy/pages/82.html
開発環境の準備 下のページから 「JREあり」の「Java」のを落とせ。 解凍したら終わりだ。たぶんな。 http //mergedoc.sourceforge.jp/index.html#/pleiades_distros4.2.html 管理者権限が必要そうなら教授に言え。すぐに対応してくれる。 してくれないならその研究室はやめとけ。 おまじない public class Hoge { public static void main (String[] args) { // ここに何か書けば動く System.out.println("あいうえお"); } } ぬるぽ nullチェックしろクズ SWT, AWT, Swing が混在したGUIを作りたい 大先輩が残していった研究成果がSwingでつくってあった、でも自分はSWTを使いたい。(その逆でもおk) そんな人に便利。 Composite composite = new Composite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND); Frame frame = SWT_AWT.new_Frame(composite); できるにはできるけど、こんなことやってると糞コードが出来上がるから 0から全部書き直そうね。
https://w.atwiki.jp/java_pro/pages/50.html
public class Dog extends Pet{ public Dog(){ } public Dog(String name){ super(name); } public void call(){ System.out.println("ワンワン"); } }
https://w.atwiki.jp/pspt/pages/264.html
Java JavaはC→C++→Javaという立ち位置にある。世界中に多くのJava開発者がいるため、C言語同様にプログラマーの必修言語とされ、知っておいて損はない言語である。なお、Javaの習得は他の言語に比べやや難しいためC言語を習得した後に勉強することをお勧めする。 JavaJavaのインストール Hello WorldHello.java cmd 注意点 Androidアプリの開発開発環境の構築 参考サイト Javaのインストール 下記のリンク先から最新のJDKをインストールしよう。 Java SE Development Kit 8u5 Hello World 画面に「Hello, World!」の文字列を表示させよう。 1.編集 2.コンパイル 3.実行 Hello.javaを作成する javacコマンドでHello.javaをコンパイルする javaコマンドでhello.classを実行する Hello.java public class Hello { public static void main(String[] args){ System.out.println("Hello, world!"); } } cmd C \xxx\yyy\zzz javac Hello.java C \xxx\yyy\zzz java Hello 注意点 ユーザー環境変数PATHにC \Program Files\Java\jdk1.8.0_05\bin;を追加しておくこと。 C \xxx\yyy\zzz はHello.javaファイルが置いてあるディレクトリを指す。 javaコマンドは拡張子を必要としない。 Androidアプリの開発 Javaの扱いに慣れてきたらAndroidアプリを開発しよう。 開発環境の構築 Android SDK(←Eclipseが含まれている)をインストール SDK Manager.exeを起動して各ツールをインストール ユーザー環境変数PATHにC \xxx\yyy\zzz\sdk\platform-tools;C \xxx\yyy\zzz\sdk\tools;を追加 Pleiades - Eclipse プラグインをインストールしてEclipseを日本語化(任意) 参考サイト 一番かんたんなjava入門
https://w.atwiki.jp/javafx/pages/29.html
はじめてのJavaFX 元ネタ:http //jfx.wikia.com/wiki/Step_by_Step _How_to_build_your_first_JavaFX_application コンテンツ はじめに JavaFXの開発環境を整える JavaFXプログラミングHello World テキストフィールドの追加 マルチコンポーネントの利用 クリック時のイベント処理 Bindingの実装 トリガーの追加 top はじめに ただJavaFXのソースコードを眺めているだけではJavaFXを理解することはできません。そこで簡単なJavaFXアプリケーションを作りながらJavaFXについて学びます。 ここでは電卓を作ることを目標にします。電卓を作るために必要なテキストフィールドであったりボタン、ボタンイベント、JavaFXの特徴でもあるトリガーについて紹介します。それでは順番にJavaFXアプリケーションを作っていきましょう! top JavaFXの開発環境を整える ここではeclipseでの設定方法を紹介します。 eclipseの導入についてはチュートリアル/JavaFXの開発環境を整えるを参照して下さい。 JavaFXアプリケーションの作成準備 まず、新規プロジェクトからJavaのプロジェクトを作ります。このときプロジェクトの名前などは任意で構いません。又、特に設定をする必要もありません。 次にこのプロジェクトにJavaFXのファイルを追加します。さきほど作ったプロジェクト名の上で右クリックをして「新規」→「その他」をクリックします。そしてその中にあるJavaFX Fileを選択して次へ手順を進めれば完了です。 コンパイルする コンパイル・実行の際は、プログラムの引数にJavaFXのファイル名(xxx.fx)を指定する必要があります。 「構成及び実行」を開いて「JavaFX Application」をダブルクリックします。このときに引数を指定します。例えばHelloWorld.fxというファイルをコンパイル・実行したい場合は以下のような設定になります。 top JavaFXプログラミング Hello World まずは簡単な「Hello,World」アプリケーションを作ってみましょう。 import javafx.ui.*; Frame{ title "はじめてのJavaFX" width 200 height 50 content Label{ text "Hello,World" } visible true } 実行例: top テキストフィールドの追加 電卓を作る上でテキストフィールドは必要になってきます。さきほどのアプリケーションをテキストフィールドを使って表現してみましょう。 import javafx.ui.*; Frame{ title "はじめてのJavaFX" width 200 height 50 content TextField{ editable false value "Hello,World" } visible true } 実行例: これはさきほどのLabelをTextFieldに置き換えただけですね。ちなみに上記の例でのテキストフィールドはユーザが編集を加えることができません。 top マルチコンポーネントの利用 電卓にはボタンが必要です、そのためにマルチコンポーネントを追加していきましょう。一般的にGUIの実装では、レイアウトマネージャーを用いてGUIの実装を行います。ここでは単純な例として、シンプルなレイアウトであるFlowLayoutを取り上げます。 JavaFXにはレイアウトに関する便利なクラスが用意されています。例えばFlowLayoutの場合、FlowPanelsというクラスが用意されています。このようにJavaFXではレイアウトに関するクラスは「xxxPanel」という名前規則を持っています。 import javafx.ui.*; Frame{ title "はじめてのJavaFX" width 200 height 100 content FlowPanel{ --*1 content [ TextField { editable false value "Hello,World" width 100 }, Button{ text "a" }, Button{ text "b" }, Button{ text "Clear" } --*2 ] } --*1 visible true } 実行例: ここでは複数のコンポーネントを配列を用いて表現しています。配列は、Java同様「[」と「]」で表され、配列の要素は,(カンマ)で区切ることで増やすことができます。また最後の要素にカンマを書くこともできます(*2のところにカンマを書くことができる)。 このサンプルではFlowPanelのcontentに複数のコンポーネントを配置していますが、Frameのcontentにも複数のコンポーネントを配列を用いて表現することができます。しかし、同じ方法ではうまくいきません。まずは*1のところをコメントアウトしてみます。単純にこれでFrameのcontentに複数のコンポーネントを配置したことになりました。これを実行してみましょう。 そうすると想像した結果とは異なったものが出てきたはずです。これはすべてのコンポーネントがFrameのBorderLayout.CENTERに従って重なりあってしまうからです。 top クリック時のイベント処理 ボタンをクリックしたらなんらかの動作が起こるようにしたいものです。 これを実現するにはボタンにActionListenersのようなものを加える必要があります。 これから先はボタンの動作などの設定なので、GUIの変化がありません。つまり実行例を載せれません。ちょっと味気ないですが我慢して下さいね D。 また期待した動きをしているかどうかは、System.out.printlnでコンソールに出力される結果を見るか、テキストフィールドの値の変化で確かめてください。 import javafx.ui.*; import java.lang.System; --*1 var win = Frame{ title "はじめてのJavaFX" width 200 height 100 content FlowPanel{ content [ TextField { editable false value "Hello,World" width 100 }, Button{ text "a" action operation(){ System.out.println(" a clicked"); } }, Button{ text "b" action operation(){ System.out.println(" b clicked"); } }, Button{ text "Clear" action operation(){ System.out.println(" c clicked"); } } ] } visible true }; ボタンをクリックしたときのイベント処理は説明する必要がないくらい簡単ですね。クリック時の処理をoperation()の中に書くだけです。しかし、クリックしたときにただコンソールに文字を出力するだけでは電卓も作れません。ここで学んだことだけではまだそれを作ることはできません。 注意することは1つインポートするものが増えたことです(*1)。Java同様にほぼすべてのクラスをインポートする場合はjava.lang.*と表記することもできます。 top Bindingの実装 (Bindingに関するもっと詳しい情報はここを見てください) 日本語訳は現在製作中 JavaFXでは、開発者が自由に新しいクラスを定義したり変数を定義したりすることができます。さきほどの例でも"var win = Frame{..."と変数を使っていました。このことは柔軟なコーディングの助けとなるだけではなく、GUIの実装において、デザインと処理を分離しやすくなります。 Bindingとは自分で定義したデータモデルを自身で利用するための手続きです。これを利用することで変数のいくつかを他の要素に依存させることもできます。例えば、テキストフィールドの値を他の値に依存させることができるのです。ボタンをクリックするとテキストフィールドの値が変化するといった動作もこれを利用します。 import javafx.ui.*; import java.lang.System; class TextValue{ attribute value String; operation clear(); --*1 } operation TextValue.clear(){ --*1 value = ""; } var model = TextValue{ --*2 value "Hello,Model" }; var win = Frame{ title "はじめてのJavaFX" width 200 height 100 content FlowPanel{ content [ TextField { editable false value bind model.value --*3 width 100 }, Button{ text "a" action operation(){ model.value = model.value.concat("a"); --*4 } }, Button{ text "b" action operation(){ model.value = model.value.concat("b"); --*4 } }, Button{ text "Clear" action operation(){ model.clear(); --*5 } } ] } visible true }; このプログラムには3つの新しい要素が加わっています。 それは、クラスの宣言、メソッドの宣言と変数の宣言です。クラスの宣言ではオブジェクト(attributes)とメソッド(operations)を定義しています。 まず妙に感じるのは*1の部分でしょう。メソッドの宣言部分ではそのメソッドがなんであるかを定義していないからです。そのメソッドがなんであるか、具体的に宣言しているのは「operation TextValue.clear(){...」のところです。 変数の宣言(*2を参照)では新しくTextValueのインスタンスを作り、変数valueの値を"Hello,Model"としています。 テキストフィールドのvalueの値は(*3を参照)前の例とは少し異なっています。テキストフィールドの値を宣言するとき初期値に特定の値を入れてしまいがちですが、model.valueの値を参照したほうがより良いと言えます(直接"Hello,Model"とするのではなく、"Hello,Model"と書かれた値を参照したほうが良い)。 このことは"bind"を使っていることと深く関係しています。ここでbindを用いると、model.valueの値が変化したとき、すぐにその変化をテキストフィールドに反映させることができます。また、Bindingは双方向であることに注意しましょう。もしテキストフィールドが編集可能であったとき、テキストフィールドの値の変化をmodel.valueへ反映させることもできます。 *4のところではaボタンとbボタンを定義し、これらボタンをクリックするとmodel.valueの後ろへ1文字追加( a もしくは b )する処理になっています。ここで注意することは文字列の連結です。Javaでは文字列の連結に「+」を使いますが、JavaFXではそれが使えません。くわしくはこちらを参照して下さい。 最後にClearボタンについてですが(*5を参照),さきほどのaボタンやbボタンと基本的なことは同じです。model.valueの文字列を消去する動作を加えるのに、直接「model.value = ""」と書くこともできますが、今回はメソッドの働きを確認したいので、「model.clear()」を用いています。 top トリガーの追加 まだこのプログラムでは1つ見逃していることがあります。 テキストフィールドの値はいつでも変化させることができますが、その値の変化を知ることはできません。これを解決するには、bind命令を少し書き換えるだけでは実装することはできません。 そこでトリガーという機能の紹介に移りたいと思います、これはJavaFXの特徴ともいうべき機能です。これにより定義したattributeが変化したときなんらかの動作を加えることができます。ここでは単純なトリガーの例を示しますが、トリガーはもっと奥深い機能であること忘れないで下さい。 import javafx.ui.*; import java.lang.System; class TextValue{ attribute value String; operation clear(); } operation TextValue.clear(){ value = ""; } var model = TextValue{ value "Hello,Model" }; trigger on TextValue.value[oldValue] = newValue{ --*1 System.out.println("old ".concat(oldValue).concat("; new ").concat(newValue)); } var win = Frame{ title "はじめてのJavaFX" width 200 height 100 content FlowPanel{ content [ TextField { editable false value bind model.value width 100 }, Button{ text "a" action operation(){ model.value = model.value.concat("a"); } }, Button{ text "b" action operation(){ model.value = model.value.concat("b"); } }, Button{ text "Clear" action operation(){ model.value = ""; } } ] } visible true }; ここで変更が加えられたのは*1のところだけです。ここでのトリガーの例はまったく無意味な処理であり、この中は簡単に書き換えることができます。 まずはじめのTextValue.valueの部分でトリガーを付加する場所を示しています。次にあるoldValueでは変化する前の古い値を示しています。そして最後にあるnewvValueでは変化した後の新しい値を示しています。oldValueは任意ですので、変化する前の古い値が必要なければこれを省略することもできます。 本文章はここまです。原文にはSwingのコードも掲載されているので、そちらを参照してみるのもいいかもしれません。 top trackback
https://w.atwiki.jp/memo_java/pages/5.html
AsyncTaskの使い方基本 http //dev.classmethod.jp/smartphone/android/asynctask/ ListAdapter getView